﻿
CMySql数据库类 mysql数据库
CMySql记录集类 记录集

类 我的主窗口类 继承 窗口类
	
	[绑定信息] //IDE生成的UI绑定信息(UI变量,事件), 支持手动修改, 可收缩隐藏
		[按钮类, _连接mysql, "连接mysql"]
			[XE_BNCLICK, 事件_点击_连接mysql, 0]
		[按钮类, _执行sql, "执行sql"]
			[XE_BNCLICK, 事件_点击_执行sql, 0]
	文本型  _布局文件 = "main.xml" //关联UI布局文件
	函数 整型 运行() //自动处理 加载布局文件, 绑定变量, 注册事件
		显示(TRUE)
		返回 0
	
	函数 整型 事件_点击_连接mysql(逻辑型 *是否拦截)
		如果 mysql数据库.连接("127.0.0.1", "root", "haosql","xgfl", 3306, 空, 0)
			mysql数据库.置当前字符集("GBK") //根据数据库的情况设置字符集
			消息框("数据库连接成功")
		否则
			消息框("数据库连接失败")
		返回 0

	函数 整型  事件_点击_执行sql(逻辑型* 是否拦截)
		如果 mysql数据库.执行SQL语句("SELECT * FROM xg_tom_tczhaopin")
			如果 mysql数据库.多个查询结果()
				循环 mysql数据库.到下一个记录集() != 0
					mysql数据库.取记录集(&记录集)
					pass
			否则
				mysql数据库.取记录集(&记录集)
			
			动态数组<MYSQL_FIELD*> 字段列表
			记录集.取字段列表(&字段列表)
			整型 长度 = 字段列表.取大小()
			如果 长度 > 0
				变量循环 整型 i = 0; i < 长度; i++
					MYSQL_FIELD* 成员内容 = 字段列表.取成员(i)
					//调试() << (成员内容->name)
			动态数组<字节集> 字节集列表
			//调试输出(记录集.到指定行(5))
			//调试输出(记录集.读文本数据("title"))
			//记录集.到下一行()
			//调试输出(记录集.读文本数据("title"))
			记录集.到下一行()

			字节集 返回字节集
			调试输出(记录集.读索引字节集数据(4,&返回字节集))
			调试输出(A2W(返回字节集.取文本指针A()))
			记录集.取当前行数据(&字节集列表)

			
			如果 字节集列表.取大小() > 0
				消息框("字节集列表")
				变量循环 整型 i = 0; i < 字节集列表.取大小(); i++
					
					字节集 成员内容 = 字节集列表.取成员(i)

					如果 成员内容.是否为空() == 假
						调试输出(成员内容.取文本指针A())
		返回 0

函数 整型 入口函数_窗口()
	炫彩_初始化(TRUE)
	//自动加载资源文件, 可通过入口函数 选项 禁用加载资源 关闭
	我的主窗口类  我的主窗口
	我的主窗口.运行()

	炫彩_运行()
	炫彩_退出()
	返回 0

//炫语言手册:   http://www.xcgui.com/doc/

//动态库入口函数参考: https://docs.microsoft.com/zh-cn/windows/win32/dlls/dllmain?redirectedfrom=MSDN

//调试快捷键:   F5: 编译和调试, F7: 编译, F9:下断点, F10: 单步, F11: 步入
//函数参数展开: Ctrl+回车: 展开收缩, 表格内回车:收缩, ESC: 取消展开
//TAB:          缩进
//TAB + SHIFT: 减少缩进
//"/":      注释/取消注释
//Ctrl + G: 跳转到指定行
//Ctrl + F: 搜索和替换
//F12:      跳转到定义
//Alt + ↑: 向上交换行
//Alt + ↓: 向下交换行
//home:     移到光标到行首
//end:      移动光标到行尾
//双击打开项目: 系统设置->关联炫彩文件类型

//关于文本编码
//  首先你确定他是一个字符串
//  如果你是二进制数据存在字节集里, 那么显示字符串是乱码的
//  取地址 是单字符型;
//  首先你要指定你字节集里存的是不是文本
//  是单字节 的 还是双字节的
//  文本文件 读到内存 都是单字节字符串 char*;
//  你需要把他转换为 unicode 双字节字符串 wchar_t*
//  调试输出A 是单字节文本
//  你用 单文本型
//  不然你要转换下
//  文本文件一般都是单字节
//  A 与 W 转换
//  ascii和unicode都不清楚的吗
//  A2W()
//  W2A()
//  我一般都用 双字节 字符处理, 比较简单
//  因为中文 如果单字节 会占多个字节
//  还得判断
//
//  文本型    双字节字符串  =  A2W_(data.取地址(),-1)
//  A2W() 就是把易那种字符串 转换为 unicode
//  分割文本, 你就用宽字符串  w wchar_t
//  
//  A =  char  =  单字节
//  w = wchar_t = 双字节 = UNICODE
//
//  你看系统API 都有两个版本
//  CreateWindowA()
//  CreateWindowW()
//  
//  炫语言代码文件是utf-8, 默认编译没有加utf-8选项, 所以ascii文本运行输入任然是ascii文本
//
//  两个文件中结构体类型互相包含导致冲突, 请将结构体定义移动到一个独立文件中
